﻿//-----------------------------------------------------------------------
// <copyright file="IPathSuggestionContext.cs" author="Artak Mkrtchyan">
//     Creative Commons - GNU General Public License (http://creativecommons.org/licenses/GPL/2.0/
// </copyright>
// <author>Artak Mkrtchyan</author>
// <email>mkArtak@gmail.com</email>
// <date>10/02/2013</date>
//-----------------------------------------------------------------------

namespace ConsoleHoster.Model.Suggestions
{
	public interface IPathSuggestionContext
	{
		/// <summary>
		/// Verifies the given command for the suggestion suggestion patterns and prepares the available suggestions, if the pattern matching succeeds
		/// </summary>
		/// <param name="argCommand">The text command representing the suggestion request</param>
		/// <param name="argCurrentFolder">The folder, where from the suggestion is being requested.
		/// Note: The command can have another directory specified, which, if is relative, being directed from current folder</param>
		/// <returns>true, if suggestion was requested. False - otherwise.</returns>
		bool UpdateContext(string argCommand, string argCurrentFolder);

		/// <summary>
		/// Resets the context by forgetting any state related to last context update
		/// </summary>
		void Reset();

		string GetNextSuggestion();

		string GetPreviousSuggestion();

		string LastProvidedSuggestion { get; }

		string Pattern { get; }
	}
}
